"""
使用生成器创建新的迭代模式

问题：
    你想实现一个自定义迭代模式，跟普通的内置函数比如range()、reversed()不一样。
解决方案：
    如果你想实现一种新的迭代模式，使用一个生成器函数来定义它。

核心知识点：
    1.一个函数中需要有一个 yield 语句即可将其转换为一个生成器。跟普通函数不同的是，生成器只能用于迭代操作。
    2.一个生成器函数主要特征是它只会回应在迭代中使用到的next操作。一旦生成器函数返回退出，迭代终止。
"""


def frange(start, stop, increment):
    x = start
    while x < stop:
        yield x
        x += increment


def use_frange():
    for i in frange(1, 8, 2):
        print(i)
    # 输出函数：
    """
    1
    3
    5
    7
    """


if __name__ == '__main__':
    use_frange()
